import { generate } from "./generate";
import { parseHTML } from "./parseAst";

export function compileToFunctions(el) {
  // vue 渲染流程3 变成ast语法树
  // 1.将html变成语法树
  let ast = parseHTML(el);
  // console.log(ast);
  // vue 渲染流程4 变成字符串变函数
  // 2.将ast语法树变成render函数 （1）ast 语法树变成一个字符串 （2）字符串变函数
  let code = generate(ast)
  // console.log('[ code ] >', code)
  // 3.将render字符串变成函数
  // vue 渲染流程5 变成render函数
  let render = new Function(`with(this) { return ${code} }`);
  // console.log('[  ] >', render)
  return render

}
